home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 3: Developer Tools / Linux Cubed Series 3 - Developer Tools.iso / devel / lang / eiffel / smalleif.97 / se.t / SmallEiffel / bin_c / compile_to_c18.c < prev    next >
Encoding:
C/C++ Source or Header  |  1996-05-02  |  40.7 KB  |  1,651 lines

  1. /* ANSI C code generated by SmallEiffel. */
  2. /*
  3. -- SmallEiffel  -- Release (- 0.97)    --      FRANCE
  4. -- Copyright (C), 1994 - Dominique COLNET and Suzanne COLLIN 
  5. -- University Henri Poincare' - Nancy 1 - email colnet@loria.fr 
  6. -- CRIN (Centre de Recherche en Informatique de Nancy)
  7. -- FRANCE 
  8. */
  9. #include "compile_to_c.h"
  10. int rT187use_current(T187 *C){
  11. int R=0;
  12. /*IF*/{/*AT*/R=rT170use_current((T170*)(C)->_arguments);
  13. }
  14. /*FI*//*IF*/if (R) {
  15. }
  16.  else if (XrT68is_current((C)->_target)) {
  17. R=XrT261use_current((C)->_run_feature);
  18. }
  19. else {
  20. R=XrT68use_current((C)->_target);
  21. }
  22. /*FI*/return R;
  23. }
  24. T0* rT187clone(T187 *C,T0* a1){
  25. T0* R=NULL;
  26. /*IF*/if (((int)a1)) {
  27. R=(T0 *)new(a1->id);
  28. AF_1
  29. XrT28copy(R,a1);
  30. AF_0
  31. }
  32. /*FI*/return R;
  33. }
  34. void rT187compile_to_c_old(T187 *C){
  35. XrT68compile_to_c_old((C)->_target);
  36. /*IF*/{/*AT*/rT170compile_to_c_old((T170*)(C)->_arguments);
  37. }
  38. /*FI*/}
  39. void rT187compile_to_c(T187 *C){
  40. T0* _n=NULL;
  41. T0 * _dyn_rf=NULL;
  42. T0 * _tt=NULL;
  43. T0* _r=NULL;
  44. _tt=XrT58run_type(XrT68result_type((C)->_target));
  45. _n=XrT67to_string(XrT261name((C)->_run_feature));
  46. /*IF*/if (rT7is_equal((T7*)(T0 *)ms1109,_n)) {
  47. rT40put_is_expanded_type((T40*)oRBC27cpp,_tt);
  48. }
  49.  else if (((XrT58is_expanded(_tt))||(XrT68is_current((C)->_target)))||(XrT68is_manifest_string((C)->_target))) {
  50. rT40push_direct((T40*)oRBC27cpp,(C)->_run_feature,(C)->_target,(C)->_arguments);
  51. XrT261mapping_c((C)->_run_feature);
  52. rT40pop((T40*)oRBC27cpp);
  53. }
  54. else {
  55. _r=((T260*)XrT58run_class(_tt))->_running;
  56. /*IF*/if (!(_r)) {
  57. rT40push_void((T40*)oRBC27cpp,(C)->_run_feature,(C)->_target,(C)->_arguments);
  58. XrT261mapping_c((C)->_run_feature);
  59. rT40pop((T40*)oRBC27cpp);
  60. }
  61.  else if ((rT263count((T263*)_r))==(1)) {
  62. _dyn_rf=rT187dynamic(rT263first((T263*)_r),(C)->_run_feature);
  63. rT40push_check((T40*)oRBC27cpp,_dyn_rf,(C)->_target,(C)->_arguments);
  64. XrT261mapping_c(_dyn_rf);
  65. rT40pop((T40*)oRBC27cpp);
  66. }
  67. else {
  68. rT40use_switch((T40*)oRBC27cpp,(C)->_run_feature,_r,(C)->_target,(C)->_arguments);
  69. }
  70. /*FI*/}
  71. /*FI*/}
  72. int rT187to_integer(T187 *C){
  73. int R=0;
  74. rT187error(rT187start_position(C),(T0 *)ms175);
  75. return R;
  76. }
  77. T0 * rT187dynamic(/*C*/T0 * a1,T0 * a2){
  78. T0 * R=NULL;
  79. T0 * _static=NULL;
  80. T0 * _sta_name=NULL;
  81. T0 * _dyn_name=NULL;
  82. _static=XrT261current_type(a2);
  83. _sta_name=XrT261name(a2);
  84. _dyn_name=rT50name_of((T50*)rT260base_class((T260*)a1),XrT58base_class(_static),_sta_name);
  85. R=rT260get_feature((T260*)a1,_dyn_name);
  86. return R;
  87. }
  88. T0 * rT187written_in(T187 *C){
  89. T0 * R=NULL;
  90. T0 * _sp=NULL;
  91. _sp=rT187start_position(C);
  92. /*IF*/if (((int)_sp)) {
  93. R=((T46*)_sp)->_base_class_name;
  94. }
  95. /*FI*/return R;
  96. }
  97. void rT187copy(T187 *C,T0 * a1){
  98. /*IF*//*AF*//*AE*/
  99. memcpy(C,a1,s[C->id]);
  100. /*FI*/}
  101. int rT187is_a(T187 *C,T0 * a1){
  102. int R=0;
  103. R=XrT58is_a(XrT58run_type((C)->_result_type),XrT58run_type(XrT68result_type(a1)));
  104. /*IF*/if (!(R)) {
  105. /*UT*/(T45*)oRBC27eh;
  106. rT45add_position(rT187start_position(C));
  107. rT187error(XrT68start_position(a1),(T0 *)ms1261);
  108. }
  109. /*FI*/return R;
  110. }
  111. void rT187make_call_1(T187 *C,T0 * a1,T0 * a2,T0 * a3){
  112. C->_target=a1;
  113. C->_feature_name=a2;
  114. C->_arguments=a3;
  115. }
  116. void rT187make(T187 *C,T0 * a1,T0 * a2,T0 * a3){
  117. T0 * _eal=NULL;
  118. /*IF*/if ((!(a1))||(!(a3))) {
  119. /*UT*/(T45*)oRBC27eh;
  120. rT45add_position(a2);
  121. rT187fatal_error((T0 *)ms305);
  122. }
  123. /*FI*/{T70 *n=((T70*)new(70));
  124. rT70make(n,(T0 *)ms312,a2);
  125. C->_feature_name=(T0 *)n;}
  126. {T170 *n=((T170*)new(170));
  127. /*(IRF3*/((n)->_list)=(ma(81,0,1,a3));
  128. /*)*/_eal=(T0 *)n;}
  129. rT187make_call_1(C,a1,(C)->_feature_name,_eal);
  130. }
  131. int rT186is_static(T186 *C){
  132. int R=0;
  133. /*IF*/if (XrT58is_integer((C)->_result_type)) {
  134. /*IF*/if ((XrT68is_static((C)->_target))&&(XrT68is_static(rT186arg1(C)))) {
  135. R=1;
  136. C->_static_value_mem=(XrT68static_value((C)->_target))/(XrT68static_value(rT186arg1(C)));
  137. }
  138. /*FI*/}
  139. /*FI*/return R;
  140. }
  141. int rT186static_value(T186 *C){
  142. int R=0;
  143. R=(C)->_static_value_mem;
  144. return R;
  145. }
  146. void rT186fatal_error(/*C*/T0* a1){
  147. rT45fatal_error((T45*)oRBC27eh,a1);
  148. }
  149. void rT186to_runnable_0(T186 *C,T0 * a1){
  150. T0 * _rc=NULL;
  151. T0 * _t=NULL;
  152. C->_current_type=a1;
  153. _t=XrT68to_runnable((C)->_target,a1);
  154. /*IF*/if (!(_t)) {
  155. rT186error(XrT68start_position((C)->_target),(T0 *)ms1119);
  156. }
  157. else {
  158. C->_target=_t;
  159. _rc=XrT58run_class(XrT68result_type((C)->_target));
  160. C->_run_feature=rT260get_rf((T260*)_rc,(C)->_target,(C)->_feature_name);
  161. C->_result_type=XrT261result_type((C)->_run_feature);
  162. /*IF*/if (!((C)->_result_type)) {
  163. /*UT*/(T45*)oRBC27eh;
  164. rT45add_position(XrT261start_position((C)->_run_feature));
  165. rT186error(((T70*)(C)->_feature_name)->_start_position,(T0 *)ms1131);
  166. }
  167. /*FI*/}
  168. /*FI*/}
  169. T0 * rT186to_runnable(T186 *C,T0 * a1){
  170. T0 * R=NULL;
  171. T0 * _a=NULL;
  172. /*IF*/if (!((C)->_current_type)) {
  173. rT186to_runnable_0(C,a1);
  174. _a=rT170to_runnable((T170*)(C)->_arguments,a1);
  175. /*IF*/if (!(_a)) {
  176. rT186error(XrT68start_position(rT186arg1(C)),(T0 *)ms1136);
  177. }
  178. else {
  179. C->_arguments=_a;
  180. }
  181. /*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
  182. rT170match_with((T170*)(C)->_arguments,(C)->_run_feature);
  183. }
  184. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0))&&(XrT58is_like_argument((C)->_result_type))) {
  185. C->_result_type=XrT58run_type(XrT68result_type(rT186arg1(C)));
  186. }
  187. /*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
  188. R=(T0 *)C;
  189. }
  190. /*FI*/}
  191. else {
  192. R=rT186clone(C,(T0 *)C);
  193. /*(IRF3*/(((T186*)R)->_current_type)=(NULL);
  194. /*)*/R=rT186to_runnable((T186*)R,a1);
  195. }
  196. /*FI*/return R;
  197. }
  198. void rT186error(/*C*/T0 * a1,T0* a2){
  199. /*UT*/(T45*)oRBC27eh;
  200. rT45add_position(a1);
  201. rT45error((T45*)oRBC27eh,a2);
  202. }
  203. T0 * rT186add_comment(T186 *C,T0 * a1){
  204. T0 * R=NULL;
  205. /*IF*/if ((!(a1))||((rT59count((T59*)a1))==(0))) {
  206. R=(T0 *)C;
  207. }
  208. else {
  209. {T220 *n=((T220*)new(220));
  210. rT220make(n,(T0 *)C,a1);
  211. R=(T0 *)n;}}
  212. /*FI*/return R;
  213. }
  214. T0 * rT186arg1(T186 *C){
  215. T0 * R=NULL;
  216. R=rT170first((T170*)(C)->_arguments);
  217. return R;
  218. }
  219. T0 * rT186start_position(T186 *C){
  220. T0 * R=NULL;
  221. R=((T70*)(C)->_feature_name)->_start_position;
  222. return R;
  223. }
  224. int rT186use_current(T186 *C){
  225. int R=0;
  226. /*IF*/{/*AT*/R=rT170use_current((T170*)(C)->_arguments);
  227. }
  228. /*FI*//*IF*/if (R) {
  229. }
  230.  else if (XrT68is_current((C)->_target)) {
  231. R=XrT261use_current((C)->_run_feature);
  232. }
  233. else {
  234. R=XrT68use_current((C)->_target);
  235. }
  236. /*FI*/return R;
  237. }
  238. T0* rT186clone(T186 *C,T0* a1){
  239. T0* R=NULL;
  240. /*IF*/if (((int)a1)) {
  241. R=(T0 *)new(a1->id);
  242. AF_1
  243. XrT28copy(R,a1);
  244. AF_0
  245. }
  246. /*FI*/return R;
  247. }
  248. void rT186compile_to_c_old(T186 *C){
  249. XrT68compile_to_c_old((C)->_target);
  250. /*IF*/{/*AT*/rT170compile_to_c_old((T170*)(C)->_arguments);
  251. }
  252. /*FI*/}
  253. void rT186compile_to_c(T186 *C){
  254. T0* _n=NULL;
  255. T0 * _dyn_rf=NULL;
  256. T0 * _tt=NULL;
  257. T0* _r=NULL;
  258. _tt=XrT58run_type(XrT68result_type((C)->_target));
  259. _n=XrT67to_string(XrT261name((C)->_run_feature));
  260. /*IF*/if (rT7is_equal((T7*)(T0 *)ms1109,_n)) {
  261. rT40put_is_expanded_type((T40*)oRBC27cpp,_tt);
  262. }
  263.  else if (((XrT58is_expanded(_tt))||(XrT68is_current((C)->_target)))||(XrT68is_manifest_string((C)->_target))) {
  264. rT40push_direct((T40*)oRBC27cpp,(C)->_run_feature,(C)->_target,(C)->_arguments);
  265. XrT261mapping_c((C)->_run_feature);
  266. rT40pop((T40*)oRBC27cpp);
  267. }
  268. else {
  269. _r=((T260*)XrT58run_class(_tt))->_running;
  270. /*IF*/if (!(_r)) {
  271. rT40push_void((T40*)oRBC27cpp,(C)->_run_feature,(C)->_target,(C)->_arguments);
  272. XrT261mapping_c((C)->_run_feature);
  273. rT40pop((T40*)oRBC27cpp);
  274. }
  275.  else if ((rT263count((T263*)_r))==(1)) {
  276. _dyn_rf=rT186dynamic(rT263first((T263*)_r),(C)->_run_feature);
  277. rT40push_check((T40*)oRBC27cpp,_dyn_rf,(C)->_target,(C)->_arguments);
  278. XrT261mapping_c(_dyn_rf);
  279. rT40pop((T40*)oRBC27cpp);
  280. }
  281. else {
  282. rT40use_switch((T40*)oRBC27cpp,(C)->_run_feature,_r,(C)->_target,(C)->_arguments);
  283. }
  284. /*FI*/}
  285. /*FI*/}
  286. int rT186to_integer(T186 *C){
  287. int R=0;
  288. rT186error(rT186start_position(C),(T0 *)ms175);
  289. return R;
  290. }
  291. T0 * rT186dynamic(/*C*/T0 * a1,T0 * a2){
  292. T0 * R=NULL;
  293. T0 * _static=NULL;
  294. T0 * _sta_name=NULL;
  295. T0 * _dyn_name=NULL;
  296. _static=XrT261current_type(a2);
  297. _sta_name=XrT261name(a2);
  298. _dyn_name=rT50name_of((T50*)rT260base_class((T260*)a1),XrT58base_class(_static),_sta_name);
  299. R=rT260get_feature((T260*)a1,_dyn_name);
  300. return R;
  301. }
  302. T0 * rT186written_in(T186 *C){
  303. T0 * R=NULL;
  304. T0 * _sp=NULL;
  305. _sp=rT186start_position(C);
  306. /*IF*/if (((int)_sp)) {
  307. R=((T46*)_sp)->_base_class_name;
  308. }
  309. /*FI*/return R;
  310. }
  311. void rT186copy(T186 *C,T0 * a1){
  312. /*IF*//*AF*//*AE*/
  313. memcpy(C,a1,s[C->id]);
  314. /*FI*/}
  315. int rT186is_a(T186 *C,T0 * a1){
  316. int R=0;
  317. R=XrT58is_a(XrT58run_type((C)->_result_type),XrT58run_type(XrT68result_type(a1)));
  318. /*IF*/if (!(R)) {
  319. /*UT*/(T45*)oRBC27eh;
  320. rT45add_position(rT186start_position(C));
  321. rT186error(XrT68start_position(a1),(T0 *)ms1261);
  322. }
  323. /*FI*/return R;
  324. }
  325. void rT186make_call_1(T186 *C,T0 * a1,T0 * a2,T0 * a3){
  326. C->_target=a1;
  327. C->_feature_name=a2;
  328. C->_arguments=a3;
  329. }
  330. void rT186make(T186 *C,T0 * a1,T0 * a2,T0 * a3){
  331. T0 * _eal=NULL;
  332. /*IF*/if ((!(a1))||(!(a3))) {
  333. /*UT*/(T45*)oRBC27eh;
  334. rT45add_position(a2);
  335. rT186fatal_error((T0 *)ms305);
  336. }
  337. /*FI*/{T70 *n=((T70*)new(70));
  338. rT70make(n,(T0 *)ms310,a2);
  339. C->_feature_name=(T0 *)n;}
  340. {T170 *n=((T170*)new(170));
  341. /*(IRF3*/((n)->_list)=(ma(81,0,1,a3));
  342. /*)*/_eal=(T0 *)n;}
  343. rT186make_call_1(C,a1,(C)->_feature_name,_eal);
  344. }
  345. int rT185is_static(T185 *C){
  346. int R=0;
  347. /*IF*/if (XrT58is_integer((C)->_result_type)) {
  348. /*IF*/if ((XrT68is_static((C)->_target))&&(XrT68is_static(rT185arg1(C)))) {
  349. R=1;
  350. C->_static_value_mem=(XrT68static_value((C)->_target))*(XrT68static_value(rT185arg1(C)));
  351. }
  352. /*FI*/}
  353. /*FI*/return R;
  354. }
  355. int rT185static_value(T185 *C){
  356. int R=0;
  357. R=(C)->_static_value_mem;
  358. return R;
  359. }
  360. void rT185fatal_error(/*C*/T0* a1){
  361. rT45fatal_error((T45*)oRBC27eh,a1);
  362. }
  363. void rT185to_runnable_0(T185 *C,T0 * a1){
  364. T0 * _rc=NULL;
  365. T0 * _t=NULL;
  366. C->_current_type=a1;
  367. _t=XrT68to_runnable((C)->_target,a1);
  368. /*IF*/if (!(_t)) {
  369. rT185error(XrT68start_position((C)->_target),(T0 *)ms1119);
  370. }
  371. else {
  372. C->_target=_t;
  373. _rc=XrT58run_class(XrT68result_type((C)->_target));
  374. C->_run_feature=rT260get_rf((T260*)_rc,(C)->_target,(C)->_feature_name);
  375. C->_result_type=XrT261result_type((C)->_run_feature);
  376. /*IF*/if (!((C)->_result_type)) {
  377. /*UT*/(T45*)oRBC27eh;
  378. rT45add_position(XrT261start_position((C)->_run_feature));
  379. rT185error(((T70*)(C)->_feature_name)->_start_position,(T0 *)ms1131);
  380. }
  381. /*FI*/}
  382. /*FI*/}
  383. T0 * rT185to_runnable(T185 *C,T0 * a1){
  384. T0 * R=NULL;
  385. T0 * _a=NULL;
  386. /*IF*/if (!((C)->_current_type)) {
  387. rT185to_runnable_0(C,a1);
  388. _a=rT170to_runnable((T170*)(C)->_arguments,a1);
  389. /*IF*/if (!(_a)) {
  390. rT185error(XrT68start_position(rT185arg1(C)),(T0 *)ms1136);
  391. }
  392. else {
  393. C->_arguments=_a;
  394. }
  395. /*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
  396. rT170match_with((T170*)(C)->_arguments,(C)->_run_feature);
  397. }
  398. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0))&&(XrT58is_like_argument((C)->_result_type))) {
  399. C->_result_type=XrT58run_type(XrT68result_type(rT185arg1(C)));
  400. }
  401. /*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
  402. R=(T0 *)C;
  403. }
  404. /*FI*/}
  405. else {
  406. R=rT185clone(C,(T0 *)C);
  407. /*(IRF3*/(((T185*)R)->_current_type)=(NULL);
  408. /*)*/R=rT185to_runnable((T185*)R,a1);
  409. }
  410. /*FI*/return R;
  411. }
  412. void rT185error(/*C*/T0 * a1,T0* a2){
  413. /*UT*/(T45*)oRBC27eh;
  414. rT45add_position(a1);
  415. rT45error((T45*)oRBC27eh,a2);
  416. }
  417. T0 * rT185add_comment(T185 *C,T0 * a1){
  418. T0 * R=NULL;
  419. /*IF*/if ((!(a1))||((rT59count((T59*)a1))==(0))) {
  420. R=(T0 *)C;
  421. }
  422. else {
  423. {T220 *n=((T220*)new(220));
  424. rT220make(n,(T0 *)C,a1);
  425. R=(T0 *)n;}}
  426. /*FI*/return R;
  427. }
  428. T0 * rT185arg1(T185 *C){
  429. T0 * R=NULL;
  430. R=rT170first((T170*)(C)->_arguments);
  431. return R;
  432. }
  433. T0 * rT185start_position(T185 *C){
  434. T0 * R=NULL;
  435. R=((T70*)(C)->_feature_name)->_start_position;
  436. return R;
  437. }
  438. int rT185use_current(T185 *C){
  439. int R=0;
  440. /*IF*/{/*AT*/R=rT170use_current((T170*)(C)->_arguments);
  441. }
  442. /*FI*//*IF*/if (R) {
  443. }
  444.  else if (XrT68is_current((C)->_target)) {
  445. R=XrT261use_current((C)->_run_feature);
  446. }
  447. else {
  448. R=XrT68use_current((C)->_target);
  449. }
  450. /*FI*/return R;
  451. }
  452. T0* rT185clone(T185 *C,T0* a1){
  453. T0* R=NULL;
  454. /*IF*/if (((int)a1)) {
  455. R=(T0 *)new(a1->id);
  456. AF_1
  457. XrT28copy(R,a1);
  458. AF_0
  459. }
  460. /*FI*/return R;
  461. }
  462. void rT185compile_to_c_old(T185 *C){
  463. XrT68compile_to_c_old((C)->_target);
  464. /*IF*/{/*AT*/rT170compile_to_c_old((T170*)(C)->_arguments);
  465. }
  466. /*FI*/}
  467. void rT185compile_to_c(T185 *C){
  468. T0* _n=NULL;
  469. T0 * _dyn_rf=NULL;
  470. T0 * _tt=NULL;
  471. T0* _r=NULL;
  472. _tt=XrT58run_type(XrT68result_type((C)->_target));
  473. _n=XrT67to_string(XrT261name((C)->_run_feature));
  474. /*IF*/if (rT7is_equal((T7*)(T0 *)ms1109,_n)) {
  475. rT40put_is_expanded_type((T40*)oRBC27cpp,_tt);
  476. }
  477.  else if (((XrT58is_expanded(_tt))||(XrT68is_current((C)->_target)))||(XrT68is_manifest_string((C)->_target))) {
  478. rT40push_direct((T40*)oRBC27cpp,(C)->_run_feature,(C)->_target,(C)->_arguments);
  479. XrT261mapping_c((C)->_run_feature);
  480. rT40pop((T40*)oRBC27cpp);
  481. }
  482. else {
  483. _r=((T260*)XrT58run_class(_tt))->_running;
  484. /*IF*/if (!(_r)) {
  485. rT40push_void((T40*)oRBC27cpp,(C)->_run_feature,(C)->_target,(C)->_arguments);
  486. XrT261mapping_c((C)->_run_feature);
  487. rT40pop((T40*)oRBC27cpp);
  488. }
  489.  else if ((rT263count((T263*)_r))==(1)) {
  490. _dyn_rf=rT185dynamic(rT263first((T263*)_r),(C)->_run_feature);
  491. rT40push_check((T40*)oRBC27cpp,_dyn_rf,(C)->_target,(C)->_arguments);
  492. XrT261mapping_c(_dyn_rf);
  493. rT40pop((T40*)oRBC27cpp);
  494. }
  495. else {
  496. rT40use_switch((T40*)oRBC27cpp,(C)->_run_feature,_r,(C)->_target,(C)->_arguments);
  497. }
  498. /*FI*/}
  499. /*FI*/}
  500. int rT185to_integer(T185 *C){
  501. int R=0;
  502. rT185error(rT185start_position(C),(T0 *)ms175);
  503. return R;
  504. }
  505. T0 * rT185dynamic(/*C*/T0 * a1,T0 * a2){
  506. T0 * R=NULL;
  507. T0 * _static=NULL;
  508. T0 * _sta_name=NULL;
  509. T0 * _dyn_name=NULL;
  510. _static=XrT261current_type(a2);
  511. _sta_name=XrT261name(a2);
  512. _dyn_name=rT50name_of((T50*)rT260base_class((T260*)a1),XrT58base_class(_static),_sta_name);
  513. R=rT260get_feature((T260*)a1,_dyn_name);
  514. return R;
  515. }
  516. T0 * rT185written_in(T185 *C){
  517. T0 * R=NULL;
  518. T0 * _sp=NULL;
  519. _sp=rT185start_position(C);
  520. /*IF*/if (((int)_sp)) {
  521. R=((T46*)_sp)->_base_class_name;
  522. }
  523. /*FI*/return R;
  524. }
  525. void rT185copy(T185 *C,T0 * a1){
  526. /*IF*//*AF*//*AE*/
  527. memcpy(C,a1,s[C->id]);
  528. /*FI*/}
  529. int rT185is_a(T185 *C,T0 * a1){
  530. int R=0;
  531. R=XrT58is_a(XrT58run_type((C)->_result_type),XrT58run_type(XrT68result_type(a1)));
  532. /*IF*/if (!(R)) {
  533. /*UT*/(T45*)oRBC27eh;
  534. rT45add_position(rT185start_position(C));
  535. rT185error(XrT68start_position(a1),(T0 *)ms1261);
  536. }
  537. /*FI*/return R;
  538. }
  539. void rT185make_call_1(T185 *C,T0 * a1,T0 * a2,T0 * a3){
  540. C->_target=a1;
  541. C->_feature_name=a2;
  542. C->_arguments=a3;
  543. }
  544. void rT185make(T185 *C,T0 * a1,T0 * a2,T0 * a3){
  545. T0 * _eal=NULL;
  546. /*IF*/if ((!(a1))||(!(a3))) {
  547. /*UT*/(T45*)oRBC27eh;
  548. rT45add_position(a2);
  549. rT185fatal_error((T0 *)ms305);
  550. }
  551. /*FI*/{T70 *n=((T70*)new(70));
  552. rT70make(n,(T0 *)ms308,a2);
  553. C->_feature_name=(T0 *)n;}
  554. {T170 *n=((T170*)new(170));
  555. /*(IRF3*/((n)->_list)=(ma(81,0,1,a3));
  556. /*)*/_eal=(T0 *)n;}
  557. rT185make_call_1(C,a1,(C)->_feature_name,_eal);
  558. }
  559. int rT184is_static(T184 *C){
  560. int R=0;
  561. /*IF*/if (XrT58is_integer((C)->_result_type)) {
  562. /*IF*/if ((XrT68is_static((C)->_target))&&(XrT68is_static(rT184arg1(C)))) {
  563. R=1;
  564. C->_static_value_mem=rT2_ix94(XrT68static_value((C)->_target),XrT68static_value(rT184arg1(C)));
  565. }
  566. /*FI*/}
  567. /*FI*/return R;
  568. }
  569. int rT184static_value(T184 *C){
  570. int R=0;
  571. R=(C)->_static_value_mem;
  572. return R;
  573. }
  574. void rT184fatal_error(/*C*/T0* a1){
  575. rT45fatal_error((T45*)oRBC27eh,a1);
  576. }
  577. void rT184to_runnable_0(T184 *C,T0 * a1){
  578. T0 * _rc=NULL;
  579. T0 * _t=NULL;
  580. C->_current_type=a1;
  581. _t=XrT68to_runnable((C)->_target,a1);
  582. /*IF*/if (!(_t)) {
  583. rT184error(XrT68start_position((C)->_target),(T0 *)ms1119);
  584. }
  585. else {
  586. C->_target=_t;
  587. _rc=XrT58run_class(XrT68result_type((C)->_target));
  588. C->_run_feature=rT260get_rf((T260*)_rc,(C)->_target,(C)->_feature_name);
  589. C->_result_type=XrT261result_type((C)->_run_feature);
  590. /*IF*/if (!((C)->_result_type)) {
  591. /*UT*/(T45*)oRBC27eh;
  592. rT45add_position(XrT261start_position((C)->_run_feature));
  593. rT184error(((T70*)(C)->_feature_name)->_start_position,(T0 *)ms1131);
  594. }
  595. /*FI*/}
  596. /*FI*/}
  597. T0 * rT184to_runnable(T184 *C,T0 * a1){
  598. T0 * R=NULL;
  599. T0 * _a=NULL;
  600. /*IF*/if (!((C)->_current_type)) {
  601. rT184to_runnable_0(C,a1);
  602. _a=rT170to_runnable((T170*)(C)->_arguments,a1);
  603. /*IF*/if (!(_a)) {
  604. rT184error(XrT68start_position(rT184arg1(C)),(T0 *)ms1136);
  605. }
  606. else {
  607. C->_arguments=_a;
  608. }
  609. /*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
  610. rT170match_with((T170*)(C)->_arguments,(C)->_run_feature);
  611. }
  612. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0))&&(XrT58is_like_argument((C)->_result_type))) {
  613. C->_result_type=XrT58run_type(XrT68result_type(rT184arg1(C)));
  614. }
  615. /*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
  616. R=(T0 *)C;
  617. }
  618. /*FI*/}
  619. else {
  620. R=rT184clone(C,(T0 *)C);
  621. /*(IRF3*/(((T184*)R)->_current_type)=(NULL);
  622. /*)*/R=rT184to_runnable((T184*)R,a1);
  623. }
  624. /*FI*/return R;
  625. }
  626. void rT184error(/*C*/T0 * a1,T0* a2){
  627. /*UT*/(T45*)oRBC27eh;
  628. rT45add_position(a1);
  629. rT45error((T45*)oRBC27eh,a2);
  630. }
  631. T0 * rT184add_comment(T184 *C,T0 * a1){
  632. T0 * R=NULL;
  633. /*IF*/if ((!(a1))||((rT59count((T59*)a1))==(0))) {
  634. R=(T0 *)C;
  635. }
  636. else {
  637. {T220 *n=((T220*)new(220));
  638. rT220make(n,(T0 *)C,a1);
  639. R=(T0 *)n;}}
  640. /*FI*/return R;
  641. }
  642. T0 * rT184arg1(T184 *C){
  643. T0 * R=NULL;
  644. R=rT170first((T170*)(C)->_arguments);
  645. return R;
  646. }
  647. T0 * rT184start_position(T184 *C){
  648. T0 * R=NULL;
  649. R=((T70*)(C)->_feature_name)->_start_position;
  650. return R;
  651. }
  652. int rT184use_current(T184 *C){
  653. int R=0;
  654. /*IF*/{/*AT*/R=rT170use_current((T170*)(C)->_arguments);
  655. }
  656. /*FI*//*IF*/if (R) {
  657. }
  658.  else if (XrT68is_current((C)->_target)) {
  659. R=XrT261use_current((C)->_run_feature);
  660. }
  661. else {
  662. R=XrT68use_current((C)->_target);
  663. }
  664. /*FI*/return R;
  665. }
  666. T0* rT184clone(T184 *C,T0* a1){
  667. T0* R=NULL;
  668. /*IF*/if (((int)a1)) {
  669. R=(T0 *)new(a1->id);
  670. AF_1
  671. XrT28copy(R,a1);
  672. AF_0
  673. }
  674. /*FI*/return R;
  675. }
  676. void rT184compile_to_c_old(T184 *C){
  677. XrT68compile_to_c_old((C)->_target);
  678. /*IF*/{/*AT*/rT170compile_to_c_old((T170*)(C)->_arguments);
  679. }
  680. /*FI*/}
  681. void rT184compile_to_c(T184 *C){
  682. T0* _n=NULL;
  683. T0 * _dyn_rf=NULL;
  684. T0 * _tt=NULL;
  685. T0* _r=NULL;
  686. _tt=XrT58run_type(XrT68result_type((C)->_target));
  687. _n=XrT67to_string(XrT261name((C)->_run_feature));
  688. /*IF*/if (rT7is_equal((T7*)(T0 *)ms1109,_n)) {
  689. rT40put_is_expanded_type((T40*)oRBC27cpp,_tt);
  690. }
  691.  else if (((XrT58is_expanded(_tt))||(XrT68is_current((C)->_target)))||(XrT68is_manifest_string((C)->_target))) {
  692. rT40push_direct((T40*)oRBC27cpp,(C)->_run_feature,(C)->_target,(C)->_arguments);
  693. XrT261mapping_c((C)->_run_feature);
  694. rT40pop((T40*)oRBC27cpp);
  695. }
  696. else {
  697. _r=((T260*)XrT58run_class(_tt))->_running;
  698. /*IF*/if (!(_r)) {
  699. rT40push_void((T40*)oRBC27cpp,(C)->_run_feature,(C)->_target,(C)->_arguments);
  700. XrT261mapping_c((C)->_run_feature);
  701. rT40pop((T40*)oRBC27cpp);
  702. }
  703.  else if ((rT263count((T263*)_r))==(1)) {
  704. _dyn_rf=rT184dynamic(rT263first((T263*)_r),(C)->_run_feature);
  705. rT40push_check((T40*)oRBC27cpp,_dyn_rf,(C)->_target,(C)->_arguments);
  706. XrT261mapping_c(_dyn_rf);
  707. rT40pop((T40*)oRBC27cpp);
  708. }
  709. else {
  710. rT40use_switch((T40*)oRBC27cpp,(C)->_run_feature,_r,(C)->_target,(C)->_arguments);
  711. }
  712. /*FI*/}
  713. /*FI*/}
  714. int rT184to_integer(T184 *C){
  715. int R=0;
  716. rT184error(rT184start_position(C),(T0 *)ms175);
  717. return R;
  718. }
  719. T0 * rT184dynamic(/*C*/T0 * a1,T0 * a2){
  720. T0 * R=NULL;
  721. T0 * _static=NULL;
  722. T0 * _sta_name=NULL;
  723. T0 * _dyn_name=NULL;
  724. _static=XrT261current_type(a2);
  725. _sta_name=XrT261name(a2);
  726. _dyn_name=rT50name_of((T50*)rT260base_class((T260*)a1),XrT58base_class(_static),_sta_name);
  727. R=rT260get_feature((T260*)a1,_dyn_name);
  728. return R;
  729. }
  730. T0 * rT184written_in(T184 *C){
  731. T0 * R=NULL;
  732. T0 * _sp=NULL;
  733. _sp=rT184start_position(C);
  734. /*IF*/if (((int)_sp)) {
  735. R=((T46*)_sp)->_base_class_name;
  736. }
  737. /*FI*/return R;
  738. }
  739. void rT184copy(T184 *C,T0 * a1){
  740. /*IF*//*AF*//*AE*/
  741. memcpy(C,a1,s[C->id]);
  742. /*FI*/}
  743. int rT184is_a(T184 *C,T0 * a1){
  744. int R=0;
  745. R=XrT58is_a(XrT58run_type((C)->_result_type),XrT58run_type(XrT68result_type(a1)));
  746. /*IF*/if (!(R)) {
  747. /*UT*/(T45*)oRBC27eh;
  748. rT45add_position(rT184start_position(C));
  749. rT184error(XrT68start_position(a1),(T0 *)ms1261);
  750. }
  751. /*FI*/return R;
  752. }
  753. void rT184make_call_1(T184 *C,T0 * a1,T0 * a2,T0 * a3){
  754. C->_target=a1;
  755. C->_feature_name=a2;
  756. C->_arguments=a3;
  757. }
  758. void rT184make(T184 *C,T0 * a1,T0 * a2,T0 * a3){
  759. T0 * _eal=NULL;
  760. /*IF*/if ((!(a1))||(!(a3))) {
  761. /*UT*/(T45*)oRBC27eh;
  762. rT45add_position(a2);
  763. rT184fatal_error((T0 *)ms305);
  764. }
  765. /*FI*/{T70 *n=((T70*)new(70));
  766. rT70make(n,(T0 *)ms306,a2);
  767. C->_feature_name=(T0 *)n;}
  768. {T170 *n=((T170*)new(170));
  769. /*(IRF3*/((n)->_list)=(ma(81,0,1,a3));
  770. /*)*/_eal=(T0 *)n;}
  771. rT184make_call_1(C,a1,(C)->_feature_name,_eal);
  772. }
  773. int rT182is_static(T182 *C){
  774. int R=0;
  775. R=rT182call_is_static(C);
  776. return R;
  777. }
  778. int rT182static_value(T182 *C){
  779. int R=0;
  780. R=(C)->_static_value_mem;
  781. return R;
  782. }
  783. void rT182fatal_error(/*C*/T0* a1){
  784. rT45fatal_error((T45*)oRBC27eh,a1);
  785. }
  786. void rT182to_runnable_0(T182 *C,T0 * a1){
  787. T0 * _rc=NULL;
  788. T0 * _t=NULL;
  789. C->_current_type=a1;
  790. _t=XrT68to_runnable((C)->_target,a1);
  791. /*IF*/if (!(_t)) {
  792. rT182error(XrT68start_position((C)->_target),(T0 *)ms1119);
  793. }
  794. else {
  795. C->_target=_t;
  796. _rc=XrT58run_class(XrT68result_type((C)->_target));
  797. C->_run_feature=rT260get_rf((T260*)_rc,(C)->_target,(C)->_feature_name);
  798. C->_result_type=XrT261result_type((C)->_run_feature);
  799. /*IF*/if (!((C)->_result_type)) {
  800. /*UT*/(T45*)oRBC27eh;
  801. rT45add_position(XrT261start_position((C)->_run_feature));
  802. rT182error(((T70*)(C)->_feature_name)->_start_position,(T0 *)ms1131);
  803. }
  804. /*FI*/}
  805. /*FI*/}
  806. T0 * rT182to_runnable(T182 *C,T0 * a1){
  807. T0 * R=NULL;
  808. T0 * _a=NULL;
  809. /*IF*/if (!((C)->_current_type)) {
  810. rT182to_runnable_0(C,a1);
  811. _a=rT170to_runnable((T170*)(C)->_arguments,a1);
  812. /*IF*/if (!(_a)) {
  813. rT182error(XrT68start_position(rT182arg1(C)),(T0 *)ms1136);
  814. }
  815. else {
  816. C->_arguments=_a;
  817. }
  818. /*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
  819. rT170match_with((T170*)(C)->_arguments,(C)->_run_feature);
  820. }
  821. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0))&&(XrT58is_like_argument((C)->_result_type))) {
  822. C->_result_type=XrT58run_type(XrT68result_type(rT182arg1(C)));
  823. }
  824. /*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
  825. R=(T0 *)C;
  826. }
  827. /*FI*/}
  828. else {
  829. R=rT182clone(C,(T0 *)C);
  830. /*(IRF3*/(((T182*)R)->_current_type)=(NULL);
  831. /*)*/R=rT182to_runnable((T182*)R,a1);
  832. }
  833. /*FI*/return R;
  834. }
  835. void rT182error(/*C*/T0 * a1,T0* a2){
  836. /*UT*/(T45*)oRBC27eh;
  837. rT45add_position(a1);
  838. rT45error((T45*)oRBC27eh,a2);
  839. }
  840. T0 * rT182add_comment(T182 *C,T0 * a1){
  841. T0 * R=NULL;
  842. /*IF*/if ((!(a1))||((rT59count((T59*)a1))==(0))) {
  843. R=(T0 *)C;
  844. }
  845. else {
  846. {T220 *n=((T220*)new(220));
  847. rT220make(n,(T0 *)C,a1);
  848. R=(T0 *)n;}}
  849. /*FI*/return R;
  850. }
  851. T0 * rT182arg1(T182 *C){
  852. T0 * R=NULL;
  853. R=rT170first((T170*)(C)->_arguments);
  854. return R;
  855. }
  856. T0 * rT182start_position(T182 *C){
  857. T0 * R=NULL;
  858. R=((T70*)(C)->_feature_name)->_start_position;
  859. return R;
  860. }
  861. int rT182use_current(T182 *C){
  862. int R=0;
  863. /*IF*/{/*AT*/R=rT170use_current((T170*)(C)->_arguments);
  864. }
  865. /*FI*//*IF*/if (R) {
  866. }
  867.  else if (XrT68is_current((C)->_target)) {
  868. R=XrT261use_current((C)->_run_feature);
  869. }
  870. else {
  871. R=XrT68use_current((C)->_target);
  872. }
  873. /*FI*/return R;
  874. }
  875. T0* rT182clone(T182 *C,T0* a1){
  876. T0* R=NULL;
  877. /*IF*/if (((int)a1)) {
  878. R=(T0 *)new(a1->id);
  879. AF_1
  880. XrT28copy(R,a1);
  881. AF_0
  882. }
  883. /*FI*/return R;
  884. }
  885. T0* rT182operator(T182 *C){
  886. T0* R=NULL;
  887. R=((T70*)(C)->_feature_name)->_to_string;
  888. return R;
  889. }
  890. void rT182compile_to_c_old(T182 *C){
  891. XrT68compile_to_c_old((C)->_target);
  892. /*IF*/{/*AT*/rT170compile_to_c_old((T170*)(C)->_arguments);
  893. }
  894. /*FI*/}
  895. void rT182compile_to_c(T182 *C){
  896. T0* _n=NULL;
  897. T0 * _dyn_rf=NULL;
  898. T0 * _tt=NULL;
  899. T0* _r=NULL;
  900. _tt=XrT58run_type(XrT68result_type((C)->_target));
  901. _n=XrT67to_string(XrT261name((C)->_run_feature));
  902. /*IF*/if (rT7is_equal((T7*)(T0 *)ms1109,_n)) {
  903. rT40put_is_expanded_type((T40*)oRBC27cpp,_tt);
  904. }
  905.  else if (((XrT58is_expanded(_tt))||(XrT68is_current((C)->_target)))||(XrT68is_manifest_string((C)->_target))) {
  906. rT40push_direct((T40*)oRBC27cpp,(C)->_run_feature,(C)->_target,(C)->_arguments);
  907. XrT261mapping_c((C)->_run_feature);
  908. rT40pop((T40*)oRBC27cpp);
  909. }
  910. else {
  911. _r=((T260*)XrT58run_class(_tt))->_running;
  912. /*IF*/if (!(_r)) {
  913. rT40push_void((T40*)oRBC27cpp,(C)->_run_feature,(C)->_target,(C)->_arguments);
  914. XrT261mapping_c((C)->_run_feature);
  915. rT40pop((T40*)oRBC27cpp);
  916. }
  917.  else if ((rT263count((T263*)_r))==(1)) {
  918. _dyn_rf=rT182dynamic(rT263first((T263*)_r),(C)->_run_feature);
  919. rT40push_check((T40*)oRBC27cpp,_dyn_rf,(C)->_target,(C)->_arguments);
  920. XrT261mapping_c(_dyn_rf);
  921. rT40pop((T40*)oRBC27cpp);
  922. }
  923. else {
  924. rT40use_switch((T40*)oRBC27cpp,(C)->_run_feature,_r,(C)->_target,(C)->_arguments);
  925. }
  926. /*FI*/}
  927. /*FI*/}
  928. int rT182to_integer(T182 *C){
  929. int R=0;
  930. rT182error(rT182start_position(C),(T0 *)ms175);
  931. return R;
  932. }
  933. T0 * rT182dynamic(/*C*/T0 * a1,T0 * a2){
  934. T0 * R=NULL;
  935. T0 * _static=NULL;
  936. T0 * _sta_name=NULL;
  937. T0 * _dyn_name=NULL;
  938. _static=XrT261current_type(a2);
  939. _sta_name=XrT261name(a2);
  940. _dyn_name=rT50name_of((T50*)rT260base_class((T260*)a1),XrT58base_class(_static),_sta_name);
  941. R=rT260get_feature((T260*)a1,_dyn_name);
  942. return R;
  943. }
  944. T0 * rT182written_in(T182 *C){
  945. T0 * R=NULL;
  946. T0 * _sp=NULL;
  947. _sp=rT182start_position(C);
  948. /*IF*/if (((int)_sp)) {
  949. R=((T46*)_sp)->_base_class_name;
  950. }
  951. /*FI*/return R;
  952. }
  953. void rT182copy(T182 *C,T0 * a1){
  954. /*IF*//*AF*//*AE*/
  955. memcpy(C,a1,s[C->id]);
  956. /*FI*/}
  957. int rT182call_is_static(T182 *C){
  958. int R=0;
  959. T0 * _rc=NULL;
  960. /*IF*/if (((int)(C)->_run_feature)) {
  961. _rc=XrT261run_class((C)->_run_feature);
  962. /*IF*/if ((rT263count((T263*)((T260*)_rc)->_running))==(1)) {
  963. /*IF*/if (XrT261is_static((C)->_run_feature)) {
  964. C->_static_value_mem=XrT261static_value_mem((C)->_run_feature);
  965. R=1;
  966. }
  967. /*FI*/}
  968. /*FI*/}
  969. /*FI*/return R;
  970. }
  971. int rT182is_a(T182 *C,T0 * a1){
  972. int R=0;
  973. R=XrT58is_a(XrT58run_type((C)->_result_type),XrT58run_type(XrT68result_type(a1)));
  974. /*IF*/if (!(R)) {
  975. /*UT*/(T45*)oRBC27eh;
  976. rT45add_position(rT182start_position(C));
  977. rT182error(XrT68start_position(a1),(T0 *)ms1261);
  978. }
  979. /*FI*/return R;
  980. }
  981. void rT182make_infix(T182 *C,T0 * a1,T0 * a2,T0 * a3){
  982. T0 * _eal=NULL;
  983. /*IF*/if ((!(a1))||(!(a3))) {
  984. /*UT*/(T45*)oRBC27eh;
  985. rT45add_position(a2);
  986. rT182fatal_error((T0 *)ms305);
  987. }
  988. /*FI*/{T70 *n=((T70*)new(70));
  989. rT70make(n,rT182operator(C),a2);
  990. C->_feature_name=(T0 *)n;}
  991. {T170 *n=((T170*)new(170));
  992. /*(IRF3*/((n)->_list)=(ma(81,0,1,a3));
  993. /*)*/_eal=(T0 *)n;}
  994. rT182make_call_1(C,a1,(C)->_feature_name,_eal);
  995. }
  996. void rT182make_call_1(T182 *C,T0 * a1,T0 * a2,T0 * a3){
  997. C->_target=a1;
  998. C->_feature_name=a2;
  999. C->_arguments=a3;
  1000. }
  1001. void rT182make(T182 *C,T0 * a1,T0 * a2,T0 * a3){
  1002. T0 * _eal=NULL;
  1003. {T170 *n=((T170*)new(170));
  1004. /*(IRF3*/((n)->_list)=(ma(81,0,1,a3));
  1005. /*)*/_eal=(T0 *)n;}
  1006. rT182make_call_1(C,a1,a2,_eal);
  1007. }
  1008. int rT175is_static(T175 *C){
  1009. int R=0;
  1010. T0 * _rc=NULL;
  1011. /*IF*/if (((int)(C)->_run_feature)) {
  1012. _rc=XrT261run_class((C)->_run_feature);
  1013. /*IF*/if ((rT263count((T263*)((T260*)_rc)->_running))==(1)) {
  1014. /*IF*/if (XrT261is_static((C)->_run_feature)) {
  1015. C->_static_value_mem=XrT261static_value_mem((C)->_run_feature);
  1016. R=1;
  1017. }
  1018. /*FI*/}
  1019. /*FI*/}
  1020. /*FI*/return R;
  1021. }
  1022. int rT175static_value(T175 *C){
  1023. int R=0;
  1024. R=(C)->_static_value_mem;
  1025. return R;
  1026. }
  1027. void rT175to_runnable_0(T175 *C,T0 * a1){
  1028. T0 * _rc=NULL;
  1029. T0 * _t=NULL;
  1030. C->_current_type=a1;
  1031. _t=XrT68to_runnable((C)->_target,a1);
  1032. /*IF*/if (!(_t)) {
  1033. rT175error(XrT68start_position((C)->_target),(T0 *)ms1119);
  1034. }
  1035. else {
  1036. C->_target=_t;
  1037. _rc=XrT58run_class(XrT68result_type((C)->_target));
  1038. C->_run_feature=rT260get_rf((T260*)_rc,(C)->_target,(C)->_feature_name);
  1039. C->_result_type=XrT261result_type((C)->_run_feature);
  1040. /*IF*/if (!((C)->_result_type)) {
  1041. /*UT*/(T45*)oRBC27eh;
  1042. rT45add_position(XrT261start_position((C)->_run_feature));
  1043. rT175error(XrT67start_position((C)->_feature_name),(T0 *)ms1131);
  1044. }
  1045. /*FI*/}
  1046. /*FI*/}
  1047. T0 * rT175to_runnable(T175 *C,T0 * a1){
  1048. T0 * R=NULL;
  1049. T0 * _a=NULL;
  1050. /*IF*/if (!((C)->_current_type)) {
  1051. rT175to_runnable_0(C,a1);
  1052. _a=rT170to_runnable((T170*)(C)->_arguments,a1);
  1053. /*IF*/if (!(_a)) {
  1054. rT175error(rT170start_position((T170*)(C)->_arguments),(T0 *)ms1143);
  1055. }
  1056. else {
  1057. C->_arguments=_a;
  1058. }
  1059. /*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
  1060. rT170match_with((T170*)(C)->_arguments,(C)->_run_feature);
  1061. }
  1062. /*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
  1063. R=(T0 *)C;
  1064. }
  1065. /*FI*/}
  1066. else {
  1067. R=rT175clone(C,(T0 *)C);
  1068. /*(IRF3*/(((T175*)R)->_current_type)=(NULL);
  1069. /*)*/R=rT175to_runnable((T175*)R,a1);
  1070. }
  1071. /*FI*/return R;
  1072. }
  1073. void rT175error(/*C*/T0 * a1,T0* a2){
  1074. /*UT*/(T45*)oRBC27eh;
  1075. rT45add_position(a1);
  1076. rT45error((T45*)oRBC27eh,a2);
  1077. }
  1078. T0 * rT175add_comment(T175 *C,T0 * a1){
  1079. T0 * R=NULL;
  1080. /*IF*/if ((!(a1))||((rT59count((T59*)a1))==(0))) {
  1081. R=(T0 *)C;
  1082. }
  1083. else {
  1084. {T220 *n=((T220*)new(220));
  1085. rT220make(n,(T0 *)C,a1);
  1086. R=(T0 *)n;}}
  1087. /*FI*/return R;
  1088. }
  1089. T0 * rT175start_position(T175 *C){
  1090. T0 * R=NULL;
  1091. R=XrT67start_position((C)->_feature_name);
  1092. return R;
  1093. }
  1094. int rT175use_current(T175 *C){
  1095. int R=0;
  1096. /*IF*/if ((rT175arg_count(C))>(0)) {
  1097. R=rT170use_current((T170*)(C)->_arguments);
  1098. }
  1099. /*FI*//*IF*/if (R) {
  1100. }
  1101.  else if (XrT68is_current((C)->_target)) {
  1102. R=XrT261use_current((C)->_run_feature);
  1103. }
  1104. else {
  1105. R=XrT68use_current((C)->_target);
  1106. }
  1107. /*FI*/return R;
  1108. }
  1109. T0* rT175clone(T175 *C,T0* a1){
  1110. T0* R=NULL;
  1111. /*IF*/if (((int)a1)) {
  1112. R=(T0 *)new(a1->id);
  1113. AF_1
  1114. XrT28copy(R,a1);
  1115. AF_0
  1116. }
  1117. /*FI*/return R;
  1118. }
  1119. void rT175compile_to_c_old(T175 *C){
  1120. XrT68compile_to_c_old((C)->_target);
  1121. /*IF*/if ((rT175arg_count(C))>(0)) {
  1122. rT170compile_to_c_old((T170*)(C)->_arguments);
  1123. }
  1124. /*FI*/}
  1125. void rT175compile_to_c(T175 *C){
  1126. T0* _n=NULL;
  1127. T0 * _dyn_rf=NULL;
  1128. T0 * _tt=NULL;
  1129. T0* _r=NULL;
  1130. _tt=XrT58run_type(XrT68result_type((C)->_target));
  1131. _n=XrT67to_string(XrT261name((C)->_run_feature));
  1132. /*IF*/if (rT7is_equal((T7*)(T0 *)ms1109,_n)) {
  1133. rT40put_is_expanded_type((T40*)oRBC27cpp,_tt);
  1134. }
  1135.  else if (((XrT58is_expanded(_tt))||(XrT68is_current((C)->_target)))||(XrT68is_manifest_string((C)->_target))) {
  1136. rT40push_direct((T40*)oRBC27cpp,(C)->_run_feature,(C)->_target,(C)->_arguments);
  1137. XrT261mapping_c((C)->_run_feature);
  1138. rT40pop((T40*)oRBC27cpp);
  1139. }
  1140. else {
  1141. _r=((T260*)XrT58run_class(_tt))->_running;
  1142. /*IF*/if (!(_r)) {
  1143. rT40push_void((T40*)oRBC27cpp,(C)->_run_feature,(C)->_target,(C)->_arguments);
  1144. XrT261mapping_c((C)->_run_feature);
  1145. rT40pop((T40*)oRBC27cpp);
  1146. }
  1147.  else if ((rT263count((T263*)_r))==(1)) {
  1148. _dyn_rf=rT175dynamic(rT263first((T263*)_r),(C)->_run_feature);
  1149. rT40push_check((T40*)oRBC27cpp,_dyn_rf,(C)->_target,(C)->_arguments);
  1150. XrT261mapping_c(_dyn_rf);
  1151. rT40pop((T40*)oRBC27cpp);
  1152. }
  1153. else {
  1154. rT40use_switch((T40*)oRBC27cpp,(C)->_run_feature,_r,(C)->_target,(C)->_arguments);
  1155. }
  1156. /*FI*/}
  1157. /*FI*/}
  1158. int rT175to_integer(T175 *C){
  1159. int R=0;
  1160. rT175error(rT175start_position(C),(T0 *)ms175);
  1161. return R;
  1162. }
  1163. T0 * rT175dynamic(/*C*/T0 * a1,T0 * a2){
  1164. T0 * R=NULL;
  1165. T0 * _static=NULL;
  1166. T0 * _sta_name=NULL;
  1167. T0 * _dyn_name=NULL;
  1168. _static=XrT261current_type(a2);
  1169. _sta_name=XrT261name(a2);
  1170. _dyn_name=rT50name_of((T50*)rT260base_class((T260*)a1),XrT58base_class(_static),_sta_name);
  1171. R=rT260get_feature((T260*)a1,_dyn_name);
  1172. return R;
  1173. }
  1174. T0 * rT175written_in(T175 *C){
  1175. T0 * R=NULL;
  1176. T0 * _sp=NULL;
  1177. _sp=rT175start_position(C);
  1178. /*IF*/if (((int)_sp)) {
  1179. R=((T46*)_sp)->_base_class_name;
  1180. }
  1181. /*FI*/return R;
  1182. }
  1183. void rT175copy(T175 *C,T0 * a1){
  1184. /*IF*//*AF*//*AE*/
  1185. memcpy(C,a1,s[C->id]);
  1186. /*FI*/}
  1187. int rT175is_a(T175 *C,T0 * a1){
  1188. int R=0;
  1189. R=XrT58is_a(XrT58run_type((C)->_result_type),XrT58run_type(XrT68result_type(a1)));
  1190. /*IF*/if (!(R)) {
  1191. /*UT*/(T45*)oRBC27eh;
  1192. rT45add_position(rT175start_position(C));
  1193. rT175error(XrT68start_position(a1),(T0 *)ms1261);
  1194. }
  1195. /*FI*/return R;
  1196. }
  1197. int rT175arg_count(T175 *C){
  1198. int R=0;
  1199. R=rT170count((T170*)(C)->_arguments);
  1200. return R;
  1201. }
  1202. void rT175make(T175 *C,T0 * a1,T0 * a2,T0 * a3){
  1203. C->_target=a1;
  1204. C->_feature_name=a2;
  1205. C->_arguments=a3;
  1206. }
  1207. int rT174is_static(T174 *C){
  1208. int R=0;
  1209. T0 * _rc=NULL;
  1210. /*IF*/if (((int)(C)->_run_feature)) {
  1211. _rc=XrT261run_class((C)->_run_feature);
  1212. /*IF*/if ((rT263count((T263*)((T260*)_rc)->_running))==(1)) {
  1213. /*IF*/if (XrT261is_static((C)->_run_feature)) {
  1214. C->_static_value_mem=XrT261static_value_mem((C)->_run_feature);
  1215. R=1;
  1216. }
  1217. /*FI*/}
  1218. /*FI*/}
  1219. /*FI*/return R;
  1220. }
  1221. int rT174static_value(T174 *C){
  1222. int R=0;
  1223. R=(C)->_static_value_mem;
  1224. return R;
  1225. }
  1226. void rT174to_runnable_0(T174 *C,T0 * a1){
  1227. T0 * _rc=NULL;
  1228. T0 * _t=NULL;
  1229. C->_current_type=a1;
  1230. _t=XrT68to_runnable((C)->_target,a1);
  1231. /*IF*/if (!(_t)) {
  1232. rT174error(XrT68start_position((C)->_target),(T0 *)ms1119);
  1233. }
  1234. else {
  1235. C->_target=_t;
  1236. _rc=XrT58run_class(XrT68result_type((C)->_target));
  1237. C->_run_feature=rT260get_rf((T260*)_rc,(C)->_target,(C)->_feature_name);
  1238. C->_result_type=XrT261result_type((C)->_run_feature);
  1239. /*IF*/if (!((C)->_result_type)) {
  1240. /*UT*/(T45*)oRBC27eh;
  1241. rT45add_position(XrT261start_position((C)->_run_feature));
  1242. rT174error(XrT67start_position((C)->_feature_name),(T0 *)ms1131);
  1243. }
  1244. /*FI*/}
  1245. /*FI*/}
  1246. T0 * rT174to_runnable(T174 *C,T0 * a1){
  1247. T0 * R=NULL;
  1248. T0 * _a=NULL;
  1249. /*IF*/if (!((C)->_current_type)) {
  1250. rT174to_runnable_0(C,a1);
  1251. _a=rT170to_runnable((T170*)(C)->_arguments,a1);
  1252. /*IF*/if (!(_a)) {
  1253. rT174error(XrT68start_position(rT174arg1(C)),(T0 *)ms1136);
  1254. }
  1255. else {
  1256. C->_arguments=_a;
  1257. }
  1258. /*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
  1259. rT170match_with((T170*)(C)->_arguments,(C)->_run_feature);
  1260. }
  1261. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0))&&(XrT58is_like_argument((C)->_result_type))) {
  1262. C->_result_type=XrT58run_type(XrT68result_type(rT174arg1(C)));
  1263. }
  1264. /*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
  1265. R=(T0 *)C;
  1266. }
  1267. /*FI*/}
  1268. else {
  1269. R=rT174clone(C,(T0 *)C);
  1270. XrT174set_current_type(R,NULL);
  1271. R=XrT174to_runnable(R,a1);
  1272. }
  1273. /*FI*/return R;
  1274. }
  1275. void rT174error(/*C*/T0 * a1,T0* a2){
  1276. /*UT*/(T45*)oRBC27eh;
  1277. rT45add_position(a1);
  1278. rT45error((T45*)oRBC27eh,a2);
  1279. }
  1280. T0 * rT174add_comment(T174 *C,T0 * a1){
  1281. T0 * R=NULL;
  1282. /*IF*/if ((!(a1))||((rT59count((T59*)a1))==(0))) {
  1283. R=(T0 *)C;
  1284. }
  1285. else {
  1286. {T220 *n=((T220*)new(220));
  1287. rT220make(n,(T0 *)C,a1);
  1288. R=(T0 *)n;}}
  1289. /*FI*/return R;
  1290. }
  1291. T0 * rT174arg1(T174 *C){
  1292. T0 * R=NULL;
  1293. R=rT170first((T170*)(C)->_arguments);
  1294. return R;
  1295. }
  1296. T0 * rT174start_position(T174 *C){
  1297. T0 * R=NULL;
  1298. R=XrT67start_position((C)->_feature_name);
  1299. return R;
  1300. }
  1301. int rT174use_current(T174 *C){
  1302. int R=0;
  1303. /*IF*/if ((/*(IRF4*/1/*)*/)>(0)) {
  1304. R=rT170use_current((T170*)(C)->_arguments);
  1305. }
  1306. /*FI*//*IF*/if (R) {
  1307. }
  1308.  else if (XrT68is_current((C)->_target)) {
  1309. R=XrT261use_current((C)->_run_feature);
  1310. }
  1311. else {
  1312. R=XrT68use_current((C)->_target);
  1313. }
  1314. /*FI*/return R;
  1315. }
  1316. T0* rT174clone(T174 *C,T0* a1){
  1317. T0* R=NULL;
  1318. /*IF*/if (((int)a1)) {
  1319. R=(T0 *)new(a1->id);
  1320. AF_1
  1321. XrT28copy(R,a1);
  1322. AF_0
  1323. }
  1324. /*FI*/return R;
  1325. }
  1326. void rT174compile_to_c_old(T174 *C){
  1327. XrT68compile_to_c_old((C)->_target);
  1328. /*IF*/if ((/*(IRF4*/1/*)*/)>(0)) {
  1329. rT170compile_to_c_old((T170*)(C)->_arguments);
  1330. }
  1331. /*FI*/}
  1332. void rT174compile_to_c(T174 *C){
  1333. T0* _n=NULL;
  1334. T0 * _dyn_rf=NULL;
  1335. T0 * _tt=NULL;
  1336. T0* _r=NULL;
  1337. _tt=XrT58run_type(XrT68result_type((C)->_target));
  1338. _n=XrT67to_string(XrT261name((C)->_run_feature));
  1339. /*IF*/if (rT7is_equal((T7*)(T0 *)ms1109,_n)) {
  1340. rT40put_is_expanded_type((T40*)oRBC27cpp,_tt);
  1341. }
  1342.  else if (((XrT58is_expanded(_tt))||(XrT68is_current((C)->_target)))||(XrT68is_manifest_string((C)->_target))) {
  1343. rT40push_direct((T40*)oRBC27cpp,(C)->_run_feature,(C)->_target,(C)->_arguments);
  1344. XrT261mapping_c((C)->_run_feature);
  1345. rT40pop((T40*)oRBC27cpp);
  1346. }
  1347. else {
  1348. _r=((T260*)XrT58run_class(_tt))->_running;
  1349. /*IF*/if (!(_r)) {
  1350. rT40push_void((T40*)oRBC27cpp,(C)->_run_feature,(C)->_target,(C)->_arguments);
  1351. XrT261mapping_c((C)->_run_feature);
  1352. rT40pop((T40*)oRBC27cpp);
  1353. }
  1354.  else if ((rT263count((T263*)_r))==(1)) {
  1355. _dyn_rf=rT174dynamic(rT263first((T263*)_r),(C)->_run_feature);
  1356. rT40push_check((T40*)oRBC27cpp,_dyn_rf,(C)->_target,(C)->_arguments);
  1357. XrT261mapping_c(_dyn_rf);
  1358. rT40pop((T40*)oRBC27cpp);
  1359. }
  1360. else {
  1361. rT40use_switch((T40*)oRBC27cpp,(C)->_run_feature,_r,(C)->_target,(C)->_arguments);
  1362. }
  1363. /*FI*/}
  1364. /*FI*/}
  1365. int rT174to_integer(T174 *C){
  1366. int R=0;
  1367. rT174error(rT174start_position(C),(T0 *)ms175);
  1368. return R;
  1369. }
  1370. T0 * rT174dynamic(/*C*/T0 * a1,T0 * a2){
  1371. T0 * R=NULL;
  1372. T0 * _static=NULL;
  1373. T0 * _sta_name=NULL;
  1374. T0 * _dyn_name=NULL;
  1375. _static=XrT261current_type(a2);
  1376. _sta_name=XrT261name(a2);
  1377. _dyn_name=rT50name_of((T50*)rT260base_class((T260*)a1),XrT58base_class(_static),_sta_name);
  1378. R=rT260get_feature((T260*)a1,_dyn_name);
  1379. return R;
  1380. }
  1381. T0 * rT174written_in(T174 *C){
  1382. T0 * R=NULL;
  1383. T0 * _sp=NULL;
  1384. _sp=rT174start_position(C);
  1385. /*IF*/if (((int)_sp)) {
  1386. R=((T46*)_sp)->_base_class_name;
  1387. }
  1388. /*FI*/return R;
  1389. }
  1390. void rT174copy(T174 *C,T0 * a1){
  1391. /*IF*//*AF*//*AE*/
  1392. memcpy(C,a1,s[C->id]);
  1393. /*FI*/}
  1394. int rT174is_a(T174 *C,T0 * a1){
  1395. int R=0;
  1396. R=XrT58is_a(XrT58run_type((C)->_result_type),XrT58run_type(XrT68result_type(a1)));
  1397. /*IF*/if (!(R)) {
  1398. /*UT*/(T45*)oRBC27eh;
  1399. rT45add_position(rT174start_position(C));
  1400. rT174error(XrT68start_position(a1),(T0 *)ms1261);
  1401. }
  1402. /*FI*/return R;
  1403. }
  1404. void rT174make(T174 *C,T0 * a1,T0 * a2,T0 * a3){
  1405. C->_target=a1;
  1406. C->_feature_name=a2;
  1407. C->_arguments=a3;
  1408. }
  1409. int rT163is_static(T163 *C){
  1410. int R=0;
  1411. T0* _name=NULL;
  1412. /*IF*/if (((int)(C)->_run_feature)) {
  1413. _name=XrT67to_string(XrT261name((C)->_run_feature));
  1414. /*IF*/if (rT7is_equal((T7*)(T0 *)ms1109,_name)) {
  1415. R=1;
  1416. /*IF*/if (XrT58is_expanded(XrT68result_type((C)->_target))) {
  1417. C->_static_value_mem=1;
  1418. }
  1419. /*FI*/}
  1420. else {
  1421. R=rT163call_is_static(C);
  1422. }
  1423. /*FI*/}
  1424. /*FI*/return R;
  1425. }
  1426. int rT163static_value(T163 *C){
  1427. int R=0;
  1428. R=(C)->_static_value_mem;
  1429. return R;
  1430. }
  1431. void rT163to_runnable_0(T163 *C,T0 * a1){
  1432. T0 * _rc=NULL;
  1433. T0 * _t=NULL;
  1434. C->_current_type=a1;
  1435. _t=XrT68to_runnable((C)->_target,a1);
  1436. /*IF*/if (!(_t)) {
  1437. rT163error(XrT68start_position((C)->_target),(T0 *)ms1119);
  1438. }
  1439. else {
  1440. C->_target=_t;
  1441. _rc=XrT58run_class(XrT68result_type((C)->_target));
  1442. C->_run_feature=rT260get_rf((T260*)_rc,(C)->_target,(C)->_feature_name);
  1443. C->_result_type=XrT261result_type((C)->_run_feature);
  1444. /*IF*/if (!((C)->_result_type)) {
  1445. /*UT*/(T45*)oRBC27eh;
  1446. rT45add_position(XrT261start_position((C)->_run_feature));
  1447. rT163error(XrT67start_position((C)->_feature_name),(T0 *)ms1131);
  1448. }
  1449. /*FI*/}
  1450. /*FI*/}
  1451. T0 * rT163to_runnable(T163 *C,T0 * a1){
  1452. T0 * R=NULL;
  1453. /*IF*/if (!((C)->_current_type)) {
  1454. rT163to_runnable_0(C,a1);
  1455. /*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0))&&((XrT261arg_count((C)->_run_feature))>(0))) {
  1456. /*UT*/(T45*)oRBC27eh;
  1457. rT45add_position(XrT67start_position((C)->_feature_name));
  1458. rT163error(XrT261start_position((C)->_run_feature),(T0 *)ms1132);
  1459. }
  1460. /*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
  1461. R=(T0 *)C;
  1462. }
  1463. /*FI*/}
  1464. else {
  1465. R=rT163clone(C,(T0 *)C);
  1466. XrT163set_current_type(R,NULL);
  1467. R=XrT163to_runnable(R,a1);
  1468. }
  1469. /*FI*/return R;
  1470. }
  1471. void rT163error(/*C*/T0 * a1,T0* a2){
  1472. /*UT*/(T45*)oRBC27eh;
  1473. rT45add_position(a1);
  1474. rT45error((T45*)oRBC27eh,a2);
  1475. }
  1476. T0 * rT163add_comment(T163 *C,T0 * a1){
  1477. T0 * R=NULL;
  1478. /*IF*/if ((!(a1))||((rT59count((T59*)a1))==(0))) {
  1479. R=(T0 *)C;
  1480. }
  1481. else {
  1482. {T220 *n=((T220*)new(220));
  1483. rT220make(n,(T0 *)C,a1);
  1484. R=(T0 *)n;}}
  1485. /*FI*/return R;
  1486. }
  1487. T0 * rT163start_position(T163 *C){
  1488. T0 * R=NULL;
  1489. R=XrT67start_position((C)->_feature_name);
  1490. return R;
  1491. }
  1492. int rT163use_current(T163 *C){
  1493. int R=0;
  1494. /*IF*/if ((/*(IRF4*/0/*)*/)>(0)) {
  1495. R=rT170use_current((T170*)/*(IRF4*/NULL/*)*/);
  1496. }
  1497. /*FI*//*IF*/if (R) {
  1498. }
  1499.  else if (XrT68is_current((C)->_target)) {
  1500. R=XrT261use_current((C)->_run_feature);
  1501. }
  1502. else {
  1503. R=XrT68use_current((C)->_target);
  1504. }
  1505. /*FI*/return R;
  1506. }
  1507. T0* rT163clone(T163 *C,T0* a1){
  1508. T0* R=NULL;
  1509. /*IF*/if (((int)a1)) {
  1510. R=(T0 *)new(a1->id);
  1511. AF_1
  1512. XrT28copy(R,a1);
  1513. AF_0
  1514. }
  1515. /*FI*/return R;
  1516. }
  1517. int rT163can_be_dropped(T163 *C){
  1518. int R=0;
  1519. /*IF*/if (XrT68is_current((C)->_target)) {
  1520. R=XrT261can_be_dropped((C)->_run_feature);
  1521. }
  1522. /*FI*/return R;
  1523. }
  1524. void rT163compile_to_c_old(T163 *C){
  1525. XrT68compile_to_c_old((C)->_target);
  1526. /*IF*/if ((/*(IRF4*/0/*)*/)>(0)) {
  1527. rT170compile_to_c_old((T170*)/*(IRF4*/NULL/*)*/);
  1528. }
  1529. /*FI*/}
  1530. void rT163compile_to_c(T163 *C){
  1531. T0* _n=NULL;
  1532. T0 * _dyn_rf=NULL;
  1533. T0 * _tt=NULL;
  1534. T0* _r=NULL;
  1535. _tt=XrT58run_type(XrT68result_type((C)->_target));
  1536. _n=XrT67to_string(XrT261name((C)->_run_feature));
  1537. /*IF*/if (rT7is_equal((T7*)(T0 *)ms1109,_n)) {
  1538. rT40put_is_expanded_type((T40*)oRBC27cpp,_tt);
  1539. }
  1540.  else if (((XrT58is_expanded(_tt))||(XrT68is_current((C)->_target)))||(XrT68is_manifest_string((C)->_target))) {
  1541. rT40push_direct((T40*)oRBC27cpp,(C)->_run_feature,(C)->_target,/*(IRF4*/NULL/*)*/);
  1542. XrT261mapping_c((C)->_run_feature);
  1543. rT40pop((T40*)oRBC27cpp);
  1544. }
  1545. else {
  1546. _r=((T260*)XrT58run_class(_tt))->_running;
  1547. /*IF*/if (!(_r)) {
  1548. rT40push_void((T40*)oRBC27cpp,(C)->_run_feature,(C)->_target,/*(IRF4*/NULL/*)*/);
  1549. XrT261mapping_c((C)->_run_feature);
  1550. rT40pop((T40*)oRBC27cpp);
  1551. }
  1552.  else if ((rT263count((T263*)_r))==(1)) {
  1553. _dyn_rf=rT163dynamic(rT263first((T263*)_r),(C)->_run_feature);
  1554. rT40push_check((T40*)oRBC27cpp,_dyn_rf,(C)->_target,/*(IRF4*/NULL/*)*/);
  1555. XrT261mapping_c(_dyn_rf);
  1556. rT40pop((T40*)oRBC27cpp);
  1557. }
  1558. else {
  1559. rT40use_switch((T40*)oRBC27cpp,(C)->_run_feature,_r,(C)->_target,/*(IRF4*/NULL/*)*/);
  1560. }
  1561. /*FI*/}
  1562. /*FI*/}
  1563. int rT163to_integer(T163 *C){
  1564. int R=0;
  1565. T0 * _rf1=NULL;
  1566. _rf1=(C)->_run_feature;
  1567. if ((int)_rf1) switch (((T0 *)_rf1)->id) {
  1568. case 277: 
  1569. break;
  1570. default:
  1571. _rf1 = NULL;
  1572. };/*IF*/if (!(_rf1)) {
  1573. rT163error(rT163start_position(C),(T0 *)ms175);
  1574. }
  1575. else {
  1576. R=XrT68to_integer(((T277*)_rf1)->_value);
  1577. }
  1578. /*FI*/return R;
  1579. }
  1580. T0 * rT163dynamic(/*C*/T0 * a1,T0 * a2){
  1581. T0 * R=NULL;
  1582. T0 * _static=NULL;
  1583. T0 * _sta_name=NULL;
  1584. T0 * _dyn_name=NULL;
  1585. _static=XrT261current_type(a2);
  1586. _sta_name=XrT261name(a2);
  1587. _dyn_name=rT50name_of((T50*)rT260base_class((T260*)a1),XrT58base_class(_static),_sta_name);
  1588. R=rT260get_feature((T260*)a1,_dyn_name);
  1589. return R;
  1590. }
  1591. T0 * rT163written_in(T163 *C){
  1592. T0 * R=NULL;
  1593. T0 * _sp=NULL;
  1594. _sp=rT163start_position(C);
  1595. /*IF*/if (((int)_sp)) {
  1596. R=((T46*)_sp)->_base_class_name;
  1597. }
  1598. /*FI*/return R;
  1599. }
  1600. void rT163copy(T163 *C,T0 * a1){
  1601. /*IF*//*AF*//*AE*/
  1602. memcpy(C,a1,s[C->id]);
  1603. /*FI*/}
  1604. int rT163call_is_static(T163 *C){
  1605. int R=0;
  1606. T0 * _rc=NULL;
  1607. /*IF*/if (((int)(C)->_run_feature)) {
  1608. _rc=XrT261run_class((C)->_run_feature);
  1609. /*IF*/if ((rT263count((T263*)((T260*)_rc)->_running))==(1)) {
  1610. /*IF*/if (XrT261is_static((C)->_run_feature)) {
  1611. C->_static_value_mem=XrT261static_value_mem((C)->_run_feature);
  1612. R=1;
  1613. }
  1614. /*FI*/}
  1615. /*FI*/}
  1616. /*FI*/return R;
  1617. }
  1618. int rT163is_a(T163 *C,T0 * a1){
  1619. int R=0;
  1620. R=XrT58is_a(XrT58run_type((C)->_result_type),XrT58run_type(XrT68result_type(a1)));
  1621. /*IF*/if (!(R)) {
  1622. /*UT*/(T45*)oRBC27eh;
  1623. rT45add_position(rT163start_position(C));
  1624. rT163error(XrT68start_position(a1),(T0 *)ms1261);
  1625. }
  1626. /*FI*/return R;
  1627. }
  1628. int rT163is_pre_computable(T163 *C){
  1629. int R=0;
  1630. /*IF*/if (XrT68is_current((C)->_target)) {
  1631. R=XrT261is_pre_computable((C)->_run_feature);
  1632. }
  1633. /*FI*/return R;
  1634. }
  1635. void rT163make(T163 *C,T0 * a1,T0 * a2){
  1636. C->_target=a1;
  1637. C->_feature_name=a2;
  1638. }
  1639. int rT161is_static(T161 *C){
  1640. int R=0;
  1641. /*IF*/if (XrT58is_boolean(XrT68result_type((C)->_target))) {
  1642. /*IF*/if (XrT68is_static((C)->_target)) {
  1643. R=1;
  1644. /*IF*/if ((XrT68static_value((C)->_target))==(0)) {
  1645. C->_static_value_mem=1;
  1646. }
  1647. /*FI*/}
  1648. /*FI*/}
  1649. /*FI*/return R;
  1650. }
  1651.